package cn.zdxiang.base.base

import android.os.Bundle
import cn.zdxiang.base.base.BaseVmFragment

/**
 * 懒加载fragment
 * @date 2020/07/20
 * @author JM
 */
abstract class BaseLazyVmFragment : BaseVmFragment() {

    private var isLoaded = false

    override fun init(savedInstanceState: Bundle?) {
    }

    override fun onResume() {
        super.onResume()
        //增加了Fragment是否可见的判断
        if (!isLoaded && !isHidden) {
            lazyInit()
            isLoaded = true
        }else{
            onFragmentVisible()
        }
    }

    /**
     * 需要懒加载时，在lazyInit中进行初始化
     */
    abstract fun lazyInit()

    /**
     * fragment可见（切换回来或者onResume）
     * fragment每次显示的时候，此方法都会执行，除了第一次
     */
    open fun onFragmentVisible() {
        setStatusBar()
    }

    override fun onDestroyView() {
        super.onDestroyView()
        isLoaded = false
    }
}